//
// Created by DV on 2025/2/5.
//
#pragma once

#include <cstdint>

namespace bsp
{
    // 触摸驱动概念
    template<typename T>
    concept TouchDriver = requires {
            { T::init() } -> std::same_as<uint8_t>;  // 无参返回8位状态码
            { T::get_single_point(std::declval<int16_t&>(), std::declval<int16_t&>()) } -> std::same_as<bool>; // 接收Point返回bool
    };

    // 默认触摸驱动（无操作）
    struct NoTouchDriver {
        static void init() {} // 空实现
        static bool get_single_point(int16_t&,int16_t&) { return false; } // 总是返回false
    };
}

